Visual Fox Pro (VFP) is a data-centric and object-oriented programming language and integrated development environment (IDE) developed by Microsoft. VFP was once popular and many companies developed large-scale, complex, business critical applications based on VFP. Microsoft announced the end-of-life for VFP in 2007. In January 2015, Microsoft ended extended support. To the dismay of many VFP application owners, Microsoft provided no single automated tool to convert legacy VFP applications to newer technology platforms.
Planning for software obsolescence (end-of-life) is a common activity in any medium to large company with an IT organization. However, planning for software obsolescence becomes more difficult when the obsolescence is related to large-scale, complex, business critical applications. The unavailability of a single automated tool to assist with these large-scale software migration projects makes planning even more difficult. Both of these difficulties hamper VFP obsolescence plans. As a result, VFP application owners face a dilemma. On the one hand, these owners may continue to run their legacy, business critical, VFP applications. This approach poses two problems. One, running legacy VFP applications in a modern IT infrastructure creates security risks. For example, VFP applications (lacking built-in security features common in modern programming languages) are susceptible to SQL injection and privilege escalation hacker exploits. Two, running VFP applications in a modern IT infrastructure often introduces performance bottlenecks (e.g. network overload). On the other hand, these owners may migrate business critical VFP applications to newer technology (e.g., Microsoft.NET). Unfortunately, structured migration of large-scale, complex VFP applications to newer technology can be a costly proposition. Many VFP migration projects require a dedicated team of professionals, working full time, for years. The business logic in the VFP applications must be hand translated into pseudo code and later re-written into the target programming language. Obviously, the structured migration of VFP applications is subject to errors. Furthermore, any attempts to leverage third-party VFP converters is not very helpful. These third-party VFP converters often do not produce useful target code and do not preserve the business logic of the original VFP applications.
It would be desirable to have systems and methods for converting a First Programming Language Application to a Second Programming Language Application that would overcome the above disadvantages.